package com.java.simple.study.jvm.gc.reference;

/**
 * @author zhoujunlin
 * @date 2022年10月19日 14:40
 * @desc 证明java使用的不是引用计数算法
 * -XX:+PrintGCDetails
 */
public class RefCountGC {

    /**
     * 这个成员属性唯一的作用就是占内存 5MB
     */
    private byte[] bigSize = new byte[5 * 1024 * 1024];

    Object reference = null;

    public static void main(String[] args) {
        RefCountGC obj1 = new RefCountGC();
        RefCountGC obj2 = new RefCountGC();

        obj1.reference = obj2;
        obj2.reference = obj1;

        obj1 = null;
        obj2 = null;

        // 显示的执行垃圾回收行为
        // 这里发生GC  obj1和obj2能否被回收
        System.gc();
    }


}
